﻿using System;
using System.Text;
using Hematology.Tools.Storage;
using Hematology.UserSite.Controls;

namespace Hematology.UserSite
{
	public partial class Error : NgoPage
	{
		protected void Page_Load(object sender, EventArgs e)
		{
			try
			{
				Exception lastException = SessionHelper.LastException;
				if (lastException != null)
				{
					string errorMsg = lastException.Message;
					if (Context.Request.UrlReferrer != null)
					{
						string pageErrorOccured = Context.Request.UrlReferrer.ToString();
						string exceptionType = lastException.GetType().ToString();
						string stackTrace = lastException.StackTrace;

						SessionHelper.LastException = null;

						StringBuilder sbError = new StringBuilder();
						sbError.Append(" К сожалению, произошла ошибка выполнения приложения.<br/><br/>");
						sbError.AppendFormat("Чтобы попробовать ещё раз, перейдите по <a href='{0}'>ссылке</a>.<br/><br/>",
											 pageErrorOccured);
						sbError.AppendFormat("Error Message: {0}<br /><br />", errorMsg);
						sbError.AppendFormat("Page Error Occurred: {0}<br /><br />", pageErrorOccured);
						sbError.AppendFormat("ExceptionType: {0}<br /><br />", exceptionType);
						sbError.AppendFormat("Stack Trace: {0}<br /><br />", stackTrace);

						lblMessage.Text = sbError.ToString();
					}
				}
			}
			catch (Exception ex)
			{
				string sErrorMessage = String.Format("{0} {1}", ex.Message, ex.StackTrace);

				lblMessage.Text = sErrorMessage;
			}
		}
	}
}